var util = require('../../utils/util.js');
var api = require('../../config/api.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    rankList:[],
    topThree:[],
    myInviteList:[],
    limit:7,
    page:1,
    active:0,
    short:0,
    userInfo: {},
    config:{},
    avatarList:[],
    loadingHidden:false,
    isMore:true,
    number:0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (options.inviteUserId != undefined) {
      wx.setStorageSync('inviteUserId', options.inviteUserId)
    }
    util.getUrl()
    this.setData({ userInfo: wx.getStorageSync('userInfo')})
  },

  // 获取后台配置的红包规则
  redPacketConfig(){
    util.request(api.redPacketConfig).then(res=>{
      if(res.code == 0){
        this.setData({
          config:res.data,
          number:res.data.number
        })
      }
    })
  },

//切换标签
  onChange(event) {
    this.setData({
      page:1,
      loadingHidden:true,
      isMore:true,
      active:event.detail.index
    })
    if(event.detail.index == 0){
      this.rankScrollLower()
      console.log('0000')
    }else{
      this.friendScrollLower()
      console.log("1111")
    }
  },

// 顶部头像
  topAva(){
    let data = {page:this.data.page,limit:this.data.limit,isRewarded:0}
    util.request(api.inviteList,data).then(res=>{
      if(res.code == 0){
        var short = this.data.short
        if(res.list.length>3){
          short = 0
        }else{
          short = 3 - res.list.length
        }

        var arr = new Array(this.data.number)
        let obj = { friendAvatar: '/static/images/wenhao.png' }
        for(var i=0;i<arr.length;i++){
          arr[i] = obj
        }

        // 循环代领奖的列表，赋值给顶部头像列表
        var friendLength = res.list.length
          for(let i=0;i<res.list.length;i++){
            for(let j=0;j<arr.length;j++){
              if(j == i){
                arr[j] = res.list[i]
              }
            }
          }
        
        this.setData({
          short: short,
          avatarList: arr
        })
        console.log(arr)
      }
    })
  },

//邀请的好友
  friendList(){
    let data = { page: this.data.page, limit: this.data.limit,isRewarded:'' }
    var myInviteListTem = this.data.myInviteList //定义一个数组使其等于data里定义的接收列表的数组
    util.request(api.inviteList, data).then(res => {  
      if (res.code == 0) {
        if (this.data.page == 1) {//当页数为1时，使上面定义的数组为空
          myInviteListTem = []
        }
        var myInviteList = res.list //再定义一个数组使其等于后台返回的数组
        if (myInviteList.length < this.data.limit) {
          this.setData({
            myInviteList: myInviteListTem.concat(myInviteList), //合并数组
            isMore: false,//是否还有更多数据：没有
            loadingHidden: true,//隐藏加载框
          })
        } else {
          this.setData({
            myInviteList: myInviteListTem.concat(myInviteList),//合并数组
            isMore: true,//是否还有更多数据：有
            page: this.data.page + 1,//页数加1
            loadingHidden: true,//隐藏加载框
          })

        }
      }
    })
  },

//排行榜
  getRankList(){
    let data = { limit:this.data.limit,page:this.data.page}
    var rankListTem = this.data.rankList //定义一个数组使其等于data里定义的接收列表的数组

    util.request(api.rankList,data).then(res=>{
      if(res.code == 0){     
        if (this.data.page == 1) {//当页数为1时，使上面定义的数组为空
          rankListTem = []
          let topThree = []
          // 循环排行榜，把前三名赋值给新数组
          res.list.forEach((e, i) => {
            if (i < 3) {
              topThree.push(e)
            }
          })

          //把前三名的第二名和第一名位置替换，实现循环时页面渲染顺序为2，1,3
          var str = topThree.splice(1, 1);
          topThree.unshift(str[0]);

          topThree.forEach((e, i) => {
            if (i == 0) {
              e.avatar_border = '/static/images/second.png'
            } else if (i == 1) {
              e.avatar_border = '/static/images/first.png'
            } else {
              e.avatar_border = '/static/images/third.png'
            }
          })

          //排行榜删除前三名
          res.list.splice(0, 3)  
          this.setData({ topThree: topThree})
        }
        var rankList = res.list //再定义一个数组使其等于后台返回的数组
        
        //如果后台返回的数组长度小于我每页要取的数据的长度，说明已经是最后一页了
        if(this.data.page == 1){
          if (rankList.length + 3 < this.data.limit) {
            this.setData({
              rankList: rankListTem.concat(rankList), //合并数组
              isMore: false,//是否还有更多数据：没有
              loadingHidden: true//隐藏加载框
            })
          } else {
            this.setData({
              rankList: rankListTem.concat(rankList),//合并数组
              isMore: true,//是否还有更多数据：有
              page: this.data.page + 1,//页数加1
              loadingHidden: true//隐藏加载框
            })
          }
        }else{
          if (rankList.length < this.data.limit) {
            this.setData({
              rankList: rankListTem.concat(rankList), //合并数组
              isMore: false,//是否还有更多数据：没有
              loadingHidden: true//隐藏加载框
            })
          } else {
            this.setData({
              rankList: rankListTem.concat(rankList),//合并数组
              isMore: true,//是否还有更多数据：有
              page: this.data.page + 1,//页数加1
              loadingHidden: true//隐藏加载框
            })
          }
        }
        


        // this.setData({
        //   rankList:res.list,
        //   topThree:topThree
        // })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.setData({
      page: 1, //真鸡儿坑啊，这句话必须有，否则转发之后page会变为2，导致顶部头像没有数据
      isMore:true,
      loadingHidden:false
    })
    this.redPacketConfig()
    this.topAva()
    this.getRankList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // console.log(this.data.isMore)
    // console.log(this.data.active)
    if (this.data.isMore) {
      if(this.data.active == 0){
        this.rankScrollLower()
      }else{
        this.friendScrollLower()
      }
      
    } else {
      util.showErrorToast('没有更多数据')
    }
  },

  rankScrollLower() {
    this.getRankList()
  },

  friendScrollLower(){
    this.friendList()
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    var _this = this
      return {
        title: '好友助力！8.88元现金红包，等你来拿~！',
        imageUrl: '/static/images/red-packet.png',
        path: `/pages/invite/invite?inviteUserId=${wx.getStorageSync('userId')}`,
      }
  }
})